package tr.edu.ege.kipler.satisfiability.container.creational;

import tr.edu.ege.kipler.satisfiability.container.WorldConstraintSystem;

/**
 * 
 * @author İnanç Seylan
 *
 */
public abstract class WcsFactory {
	public abstract WorldConstraintSystem createWcs();

	public static WcsFactory getFactory(ContainerType type) {
		WcsFactory result = null;
		switch (type) {
		case SHQ:
			result = new SHQWcsFactory();
			break;
		case SHIQ_BASIC:
			result = new SHIQBasicWcsFactory();
			break;
		case SHIQ_MODIFIED_INDIVIDUAL:
			result = new SHIQModifiedIndividualListWcsFactory();
			break;
		case SHOIQ_BASIC:
			result = new SHOIQBasicWcsFactory();
			break;
		case SHOIQ_MODIFIED_INDIVIDUAL:
			result = new SHOIQModifiedIndividualListWcsFactory();
			break;
		}
		return result;
	}
}
